Traditional fall duplex communications systems are typically implemented using dedicated DSP-based hardware. Such modem implementation schemes are usually quite expensive due to the dedicated DSP hardware utilized. Therefore, the recent trend in the personal computer (PC) industry is to implement modems by exploiting the general purpose CPU built into each PC without the need for additional processing hardware. Such implementation schemes are termed Native Signal Processing (NSP).
Implicit in any NSP based modem design is the requirement that the modem share CPU time with other tasks executed in the PC system on the same processing unit. Hence, the great importance in minimizing CPU utilization of the NSP software functions using both novel DSP algorithms and hand coded assembly language optimizations.
Most modem implementations, whether NSP or DSP based, utilize one or more finite impulse response (FIR) adaptive filters to perform various filtering functions. Examples of applications of FIR adaptive filters include the far-end (FE) echo canceler FIR filter, the near-end echo (NE) echo canceler FIR filter and the equalizer (EQU) FIR filter. Each filter is constructed to have a particular number of taps or delay units. Generally, the larger the number of taps the better the filter performs its filtering function. However, the price is increased processing time.
In addition, the communication systems the modems are employed in are usually required to cope with a vast number of diverse channel and echo impairments. The length of a communications filter needed to retain a given performance curve depends on the amount of signal distortion introduced by the channel and the echo impairments. Usually, the greater the distortion that is present in the channel, the longer the filter that is needed to cancel it. Since the communication system must be able to cope with the worst case impairment conditions, and since the distortion characteristics are not known a priori, prior art modems which use fixed length filters must employ a long filter length to meet the worst case requirements regardless of the actual signal distortion. However, since worst case distortion conditions are quite rare, a fixed length filter implementation usually results in wasted consumption of CPU resources.
Modifying the length of a digital filter for producing optimal acoustic echo cancellation is known in the art. U.S. Pat. No. 5,473,686 issued to Virdee teaches modifying the number of taps of an adaptive finite impulse response (AFIR) to achieve optimal echo cancellation. The taps at the end of the filter are examined as to whether they contribute a first threshold amount to the echo estimate. If not, the number of samples is reduced and the taps at the end of the filter are checked again. If the taps at the end of the filter contribute more than a second threshold amount, the number of samples is increased and the process is repeated.